﻿using System;
using System.Data;
using EOSCRM.Web.Common;
using CrystalDecisions.CrystalReports.Engine;
using EOSCRM.Util;
using EOSCRM.Dao;
using EOSCRM.Web.Shared;
using ReportDocument = CrystalDecisions.CrystalReports.Engine.ReportDocument;

namespace EOSCRM.Web.Forms.DongHo.BaoCao
{
    public partial class KhachHangMuaDHMoi : Authentication
    {
        protected void Page_Init(object sender, EventArgs e)
        {
            ReportFilePath = Server.MapPath("~/Reports/KiemDinhDongHo/rpKhachHangMuaDHMoi.rpt");
            ReportViewer = rpViewer;
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                

                if (!Page.IsPostBack)
                    LoadReferences();
            }
            catch (Exception ex)
            {
                DoError(new Message(MessageConstants.E_EXCEPTION, MessageType.Error, ex.Message, ex.StackTrace));
            }
        }

        #region Startup script registeration
        private void ShowError(string message)
        {
            var master = (EOS)Page.Master;
            if (master != null) master.ShowError(message);
        }

        private void CloseWaitingDialog()
        {
            var master = (EOS)Page.Master;
            if (master != null) master.CloseWaitingDialog();
        }

        #endregion

        private void LoadReferences()
        {
            var now = DateTime.Now;
            var firstDayInMonth = new DateTime(now.Year, now.Month, 1);
            txtTuNgay.Text = firstDayInMonth.ToString(ConfigDao.Value(DATEFORMAT.F_DDMMYYYY.ToString()));
            txtDenNgay.Text = now.ToString(ConfigDao.Value(DATEFORMAT.F_DDMMYYYY.ToString()));

            txtNguoiLap.Text = LoginInfo.NHANVIEN.HOTEN;
            CommonFunc.BindDropDownList(ddlKHUVUC, new KhuVucDao().GetList(), "TENKV", "MAKV", true);
            CommonFunc.BindDropDownList(ddlPHUONG, new PhuongDao().GetList(), "TENPHUONG", "MAPHUONG", true);
        }

        protected void btnReport_Click(object sender, EventArgs e)
        {
            var tungay = ConvertUtil.ToDateTime(txtTuNgay.Text.Trim());
            var denngay = ConvertUtil.ToDateTime(txtDenNgay.Text.Trim());

            if (!tungay.HasValue || !denngay.HasValue)
            {
                CloseWaitingDialog();
                ShowError(String.Format(Resources.Message.E_INVALID_DATA, "Chọn khoảng ngày báo cáo hợp lệ"));
                return;
            }

            var ds =
                new ReportClass().RPDANHSACHKHTHAYDHMOI(tungay.Value, denngay.Value, ddlPHUONG.SelectedValue, ddlKHUVUC.Text);
            if (ds == null || ds.Tables.Count == 0) { CloseWaitingDialog(); return; }

            LoadReport(ds.Tables[0]);
            SetFieldValues(tungay.Value, denngay.Value);

            divCR.Visible = true;

            CloseWaitingDialog();
        }

        private void SetFieldValues(DateTime tungay, DateTime denngay)
        {
            if (ReportObject == null) return;

            var now = DateTime.Now;
            ReportObject.changeTEXT("txtTitle", "BẢNG KÊ THANH TOÁN LẮP ĐẶT ĐỒNG HỒ DO KHÁCH HÀNG MUA MỚI");
            ReportObject.changeTEXT("txtNgayThangNam", string.Format("Biên Hòa, Ngày {0}, tháng {1}, năm {2}",
                                                            now.Day, now.Month, now.Year));
            ReportObject.changeTEXT("txtNguoiLap", txtNguoiLap.Text.Trim());
            ReportObject.changeTEXT("txtTuNgay", string.Format("Từ ngày {0} đến ngày {1}",
                                                        tungay.ToString("dd/MM/yyyy"), denngay.ToString("dd/MM/yyyy")));
        }
    }
}